home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tangosources.lha / misc_sources / TIMELORDS.S < prev   
Encoding:
Text File  |  2008-06-03  |  12.7 KB  |  432 lines

  1. *****************************************************************************
  2. *                            XENTRIX INTRO:1                                    *
  3. *                                                                            *
  4. * CODED BY       : TANGO                                                    *
  5. * PROGRAM STARTED:11/2/91                                                    *
  6. * LAST EDITED    :11/2/91                                                    *
  7. *                                                                            *
  8. *****************************************************************************
  9.  
  10.     section ste,code_c
  11.     incdir    df1:
  12.     opt c-
  13.     include gamemacros
  14.     
  15.     
  16.     killsys
  17.  
  18.     move.l    #$70000,a0
  19.     move.l    #10240,d2
  20. cloop:
  21.     clr.l    (a0)+
  22.     dbf        d2,cloop
  23.  
  24.     move.l    #$60000,a0
  25.     move.l    #10240,d2
  26. dloop:
  27.     clr.l    (a0)+
  28.     dbf        d2,dloop
  29.  
  30.     jsr        cyb_init                ; initialise music
  31.     move.l    #newcop,$dff080
  32.     lea        custom,a5
  33. mouse:
  34.     move.l    vposr(a5),d0            
  35.     and.l    #$1ff00,d0
  36.     cmp.l    #$00100,d0    
  37.     bne.s    mouse
  38.     bsr        doform
  39.     bsr        clear
  40.     bsr        scroller
  41.     bsr        copy
  42.     save_all
  43.     jsr        cyb_music
  44.     return_all
  45.     btst    #6,$bfe001
  46.     bne.s    mouse
  47.     ressys
  48.     clr.l    d0
  49.     rts
  50.  
  51.  
  52. *****************************************************************************
  53. *                            BLIT THE COPPER BARS                            *
  54. *****************************************************************************
  55.  
  56. blitbar:
  57.     lea        coltab(pc),a1
  58.     lea        dest+6(pc),a2                ; point to colour 
  59.     lea        bltapth(a5),a3
  60.     lea        bltdpth(a5),a4
  61.     lea        bltsize(a5),a0
  62.     lea        bltcon0(a5),a6
  63.     move.l    #-1,d6
  64.     moveq    #0,d4
  65.     moveq    #6,d5
  66.     add.l    d1,a2                        ; d1 holds position of bar
  67.     blitwait
  68.     move.w    d4,bltamod(a5)
  69.     move.w    d5,bltdmod(a5)                ; 6  (3words to next colour)
  70.     move.l    d6,bltafwm(a5)
  71.     move.l    a1,(a3)                        ; source
  72.     move.l    a2,(a4)                        ; dest
  73.     move.l    #$09f00000,(a6)                ; minterm D=A
  74.     move.w    #32<<6!1,(a0)                ; blitsize
  75.     rts
  76.  
  77.  
  78. *****************************************************************************
  79. *                    MOVE THE COPPER BARS FROM A SINE TABLE                    *
  80. *****************************************************************************
  81.  
  82. doform:
  83.     move.l    bsinptr(pc),a2    ; pointer to sine table
  84.     move.l    tabptr(pc),a0    ; pointer to table
  85.     move.w    (a0)+,d7        ; amount of bars
  86. barlooper:
  87.     move.w    (a0)+,d1        ; position in sinetab
  88.     add.w    d1,d1            ; even
  89.     and.w    #$fe,d1
  90.     move.w    (a2,d1),d1        ; got position
  91.     asl.l    #3,d1            ; times by 8 for next line down!
  92.     move.w    (a0)+,d2
  93.     add.w    d2,-4(a0)        ; speed
  94.     save_all
  95.     bsr        blitbar
  96.     return_all
  97.     dbf        d7,barlooper
  98.     rts
  99.     
  100.  
  101. *****************************************************************************
  102. *                          BLIT SHIFT SCROLL ROUTINE                            *
  103. *****************************************************************************
  104.  
  105. scroller:
  106.     move.l    #-1,bltafwm(a5)
  107.     tst.l    scrolled                ;have we scrolled 16 pixels?
  108.     bne        scrollon                ;no
  109.     move.l    #15,scrolled            ;yes, reset
  110.     sub.l    d6,d6
  111.     lea        table(pc),a4
  112.     move.l    scrptr(pc),a3
  113.     move.b    (a3),d6
  114.     cmp.b    #255,d6                    ;end of scroll text?
  115.     bne.s    anotover                ;no
  116.     move.l    #scrolltext,scrptr
  117.     sub.l    d6,d6
  118.     rts
  119. anotover:
  120.     sub.b    #32,d6                    ;convert
  121.     add.w    d6,d6
  122.     move.w    (a4,d6),d6                ;got letter
  123.     add.l    #1,scrptr                ;update
  124.     blitwait
  125.     move.l    #$09f00000,bltcon0(a5)    ;minterm d=a
  126.     move.l    #font,a0
  127.     add.l    d6,a0
  128.     move.l    a0,bltapth(a5)
  129.     move.w    #38,bltamod(a5)
  130.     move.w    #46,bltdmod(a5)            ;screen is 2 words bigger
  131.     move.l    #$70000,bltdpth(a5)
  132.     move.w    #16<<6!1,bltsize(a5)
  133. scrollon:    
  134.     blitwait
  135.     move.w    #0,bltamod(a5)
  136.     move.w    #0,bltdmod(a5)
  137.     move.l    #$70000,bltdpth(a5)        ;coarse scroller
  138.     move.l    #$70002,bltapth(a5)
  139.     move.l    #$f9f00000,bltcon0(a5)
  140.     move.w    #16<<6!22,bltsize(a5)
  141.     sub.l    #1,scrolled
  142.     rts
  143.  
  144. copy:
  145.     lea        bltapth(a5),a1            ;source
  146.     lea        bltdpth(a5),a2            ;dest
  147.     lea        bltbpth(a5),a3            ;dest
  148.     lea        bltsize(a5),a4            ;blitsize
  149.     lea        bltcon0(a5),a6
  150.     move.w    #$3fe,d1
  151.     move.w    #22,d6
  152.     move.w    #46,d2                    ;modulo
  153.     move.w    #16<<6!1,d3                ;bltsize
  154.     move.l    #$0dfc0000,d7
  155.     move.l    #$70000,d4
  156.     move.l    screen_base,d5
  157.     move.l    #-1,bltalwm(a5)
  158.     move.w    d2,bltamod(a5)
  159.     move.w    d2,bltbmod(a5)
  160.     move.w    d2,bltdmod(a5)
  161.     add.w    #12,sinptr+2
  162.     and.l    d1,sinptr
  163.     lea        sintab(pc),a0
  164.     add.l    sinptr,a0
  165.     lea        bltafwm(a5),a5
  166. brloop:
  167.     move.w    #$8000,d1                ;mask
  168. coploop:
  169.     rept    16
  170.     move.w    d1,(a5)
  171.     add.w    (a0),d5
  172.     move.l    d4,(a1)                    ;source
  173.     move.l    d5,(a2)                    ;dest d
  174.     move.l    d5,(a3)                    ;dest b
  175.     sub.w    (a0)+,d5
  176.     move.l    d7,(a6)
  177.     move.w    d3,(a4)                    ;blitsize
  178.     ror.w    d1
  179.     endr
  180.     addq.w    #2,d4                    ;next along
  181.     addq.w    #2,d5                    ;next along
  182.     dbf        d6,brloop
  183.     lea        custom,a5
  184.     rts
  185.  
  186.  
  187. clear:
  188.     eor.w    #$4000,a1l+2
  189.     eor.w    #$4000,screen_base+2
  190.     move.l    screen_base,a1                    ; dst
  191.     blitwait
  192.     move.l    #$01f00000,bltcon0(a5)
  193.     move.l    #-1,bltafwm(A5)
  194.     move.w    #0,bltdmod(a5)
  195.     move.l    a1,bltdpth(A5)
  196.     move.w    #117*64+24,bltsize(a5)
  197.     Movem.l    a0-a6/d0-d7,-(a7)        
  198.     Movem.l    RegFiller(pc),a1-a6/d0-d7
  199.     move.l    screen_base,a0
  200.     add.w    #10368,a0
  201.     Rept    93                
  202.     Movem.l    a1-a6/d0-d7,-(a0)
  203.     Endr                    
  204.     Movem.l    (a7)+,a0-a6/d0-d7
  205.     Rts
  206. RegFiller
  207.     Dcb.l    16,0
  208.  
  209.     
  210. scrolled:
  211.     dc.l    15
  212. scrptr:
  213.     dc.l    scrolltext
  214. scrolltext:
  215.     DC.B    'THIS IS THE STORY OF THE TIMELORDS   '
  216.     DC.B    'ONCE UPON A TIME THE LAMETURDS WANTED TO SWAP WITH SEPULTURA '
  217.     DC.B    'THIS WAS FAIR ENOUGH   NO PROBLEMS YET  '
  218.     DC.B    'SO THE MAN FROM DELMONTE SENT THESE GUYS SOME DISKS '
  219.     DC.B    'THESE WERE FRESH FROM ANARCHY 91 AND WERE NOT SHIT  '
  220.     DC.B    'SO WE WAITED FOR OUR REPLY FROM THE LAMETURDS   '
  221.     DC.B    'AND WE WAITED AND OUR PACKAGE NEVER ARRIVED    '
  222.     DC.B    'THE TIMELORDS RIPPED US OFF    BUT WE CAN HANDLE IT  '
  223.     DC.B    'A MESSAGE TO EVERYONE FROM MFD OF SEPULTURA UK   '
  224.     DC.B    'DONT SEND TO CHRIS IN EXETER COS HE DOESNT REPLY  '
  225.     DC.B    'IF THE TIMELORDS ARE READING THIS THEN DONT JUST SIT THERE  '
  226.     DC.B    'YOU COULD SEND US THE DISKS YOU OWE US  '
  227.     DC.B    'YOU COULD GIVE A REASON FOR NOT REPLYING '
  228.     DC.B    'YOU COULD SEND US AN INTRO WITH AN EXPLAINATION  '
  229.     DC.B    'OR CAN YOU NOT CODE  PROBABLY NOT '
  230.     DC.B    'MEMBERS OF SEPULTURA TRAVEL THE COUNTRY FOLLOWING BWFC '
  231.     DC.B    'IF WE ARE IN DEVON THEN WE MAY JUST PAY YOU A VISIT '
  232.     DC.B    'IF YOU ARENT IN BED OR DOING HOMEWORK THEN WATCH OUT '
  233.     DC.B    'BECAUSE SEPULTURA ARE GOING TO GET YOU '
  234.     DC.B    'THIS INTRO WILL GO ON A SEPULTURA COMP AND WILL BE SPREAD '
  235.     DC.B    'SO PERHAPS YOU WILL HAVE LEARNT YOUR LESSON '
  236.     DC.B    'DONT FUCK PEOPLE ABOUT BECAUSE PEOPLE DONT LIKE IT '
  237.     DC.B    255
  238.     even
  239.  
  240.  
  241. *****************************************************************************
  242. *                    NOISETRACKER PLAY ROUTINE TO BE INCLUDED                *
  243. *****************************************************************************
  244.  
  245. play_routine:
  246.  
  247.     include    sfx/nt.s
  248.  
  249.  
  250. *****************************************************************************
  251. *                                NEW COPPER LIST                                *
  252. *****************************************************************************
  253.  
  254. newcop:
  255.     cmove    color01,$f5f
  256.     cmove    bpl1mod,2    
  257.     cmove    bpl2mod,2    
  258.     cmove    bplcon0,$1200
  259.     cmove    diwstrt,$2c81
  260.     cmove    diwstop,$2cc1
  261.     cmove    ddfstrt,$28
  262.     cmove    ddfstop,$d8
  263.     cmove    bpl1pth,$0007
  264. a1l    cmove    bpl1ptl,$1000
  265. a    set    80
  266. dest:
  267.     rept    170
  268.     dc.b    a,$09,$ff,$fe
  269.     dc.w    $180,$00            ; CHANGE THIS COL!!!
  270. a    set        a+1
  271.     endr
  272.     end_copper
  273.  
  274.     
  275. *****************************************************************************
  276. *                                CHARACTER TABLE                                *
  277. *****************************************************************************
  278.  
  279. table:
  280.     dc.w    0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
  281.     dc.w    (16*40),2+(16*40),4+(16*40),6+(16*40),8+(16*40),10+(16*40)
  282.     dc.w    12+(16*40),14+(16*40),16+(16*40),18+(16*40),20+(16*40),22+(16*40)
  283.     dc.w    24+(16*40),26+(16*40),28+(16*40),30+(16*40),32+(16*40),34+(16*40)
  284.     dc.w    36+(16*40),38+(16*40)
  285.     dc.w    (16*80),2+(16*80),4+(16*80),6+(16*80),8+(16*80),10+(16*80)
  286.     dc.w    12+(16*80),14+(16*80),16+(16*80),18+(16*80),20+(16*80),22+(16*80)
  287.     dc.w    24+(16*80),26+(16*80),28+(16*80),30+(16*80),32+(16*80),34+(16*80)
  288.     dc.w    36+(16*80),38+(16*80)
  289.     even
  290.  
  291. screen_base:
  292.     dc.l    $71000
  293. sinptr:
  294.     dc.l    sintab
  295. sintab:    
  296.     rept    3
  297.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  298.     dc.w    200*48,199*48,199*48,199*48,199*48,199*48,199*48,198*48
  299.     dc.w    198*48,198*48,198*48,197*48,197*48,197*48,196*48,196*48
  300.     dc.w    196*48,195*48,195*48,195*48,194*48,194*48,193*48,193*48
  301.     dc.w    192*48,192*48,191*48,191*48,190*48,190*48,189*48,189*48
  302.     dc.w    188*48,188*48,187*48,186*48,186*48,185*48,184*48,184*48
  303.     dc.w    183*48,182*48,182*48,181*48,180*48,180*48,179*48,178*48
  304.     dc.w    177*48,177*48,176*48,175*48,174*48,173*48,172*48,172*48
  305.     dc.w    171*48,170*48,169*48,168*48,167*48,166*48,165*48,164*48
  306.     dc.w    163*48,162*48,162*48,161*48,160*48,159*48,158*48,157*48
  307.     dc.w    156*48,155*48,153*48,152*48,151*48,150*48,149*48,148*48
  308.     dc.w    147*48,146*48,145*48,144*48,143*48,142*48,141*48,139*48
  309.     dc.w    138*48,137*48,136*48,135*48,134*48,133*48,131*48,130*48
  310.     dc.w    129*48,128*48,127*48,125*48,124*48,123*48,122*48,121*48
  311.     dc.w    120*48,118*48,117*48,116*48,115*48,113*48,112*48,111*48
  312.     dc.w    110*48,109*48,107*48,106*48,105*48,104*48,102*48,101*48
  313.     dc.w    100*48,99*48,98*48,96*48,95*48,94*48,93*48,91*48
  314.     dc.w    90*48,89*48,88*48,87*48,85*48,84*48,83*48,82*48
  315.     dc.w    80*48,79*48,78*48,77*48,76*48,75*48,73*48,72*48
  316.     dc.w    71*48,70*48,69*48,67*48,66*48,65*48,64*48,63*48
  317.     dc.w    62*48,61*48,59*48,58*48,57*48,56*48,55*48,54*48
  318.     dc.w    53*48,52*48,51*48,50*48,49*48,48*48,46*48,45*48
  319.     dc.w    44*48,43*48,42*48,41*48,40*48,39*48,38*48,38*48
  320.     dc.w    37*48,36*48,35*48,34*48,33*48,32*48,31*48,30*48
  321.     dc.w    29*48,28*48,28*48,27*48,26*48,25*48,24*48,23*48
  322.     dc.w    23*48,22*48,21*48,20*48,20*48,19*48,18*48,18*48
  323.     dc.w    17*48,16*48,16*48,15*48,14*48,14*48,13*48,12*48
  324.     dc.w    12*48,11*48,11*48,10*48,10*48,9*48,9*48,8*48
  325.     dc.w    8*48,7*48,7*48,6*48,6*48,5*48,5*48,5*48
  326.     dc.w    4*48,4*48,4*48,3*48,3*48,3*48,2*48,2*48
  327.     dc.w    2*48,2*48,1*48,1*48,1*48,1*48,1*48,1*48
  328.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  329.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  330.     dc.w    0*48,1*48,1*48,1*48,1*48,1*48,1*48,2*48
  331.     dc.w    2*48,2*48,2*48,3*48,3*48,3*48,4*48,4*48
  332.     dc.w    4*48,5*48,5*48,5*48,6*48,6*48,7*48,7*48
  333.     dc.w    8*48,8*48,9*48,9*48,10*48,10*48,11*48,11*48
  334.     dc.w    12*48,12*48,13*48,14*48,14*48,15*48,16*48,16*48
  335.     dc.w    17*48,18*48,18*48,19*48,20*48,20*48,21*48,22*48
  336.     dc.w    23*48,23*48,24*48,25*48,26*48,27*48,28*48,28*48
  337.     dc.w    29*48,30*48,31*48,32*48,33*48,34*48,35*48,36*48
  338.     dc.w    37*48,38*48,38*48,39*48,40*48,41*48,42*48,43*48
  339.     dc.w    44*48,45*48,47*48,48*48,49*48,50*48,51*48,52*48
  340.     dc.w    53*48,54*48,55*48,56*48,57*48,58*48,59*48,61*48
  341.     dc.w    62*48,63*48,64*48,65*48,66*48,67*48,69*48,70*48
  342.     dc.w    71*48,72*48,73*48,75*48,76*48,77*48,78*48,79*48
  343.     dc.w    80*48,82*48,83*48,84*48,85*48,87*48,88*48,89*48
  344.     dc.w    90*48,91*48,93*48,94*48,95*48,96*48,98*48,99*48
  345.     dc.w    100*48,101*48,102*48,104*48,105*48,106*48,107*48,109*48
  346.     dc.w    110*48,111*48,112*48,113*48,115*48,116*48,117*48,118*48
  347.     dc.w    120*48,121*48,122*48,123*48,124*48,125*48,127*48,128*48
  348.     dc.w    129*48,130*48,131*48,133*48,134*48,135*48,136*48,137*48
  349.     dc.w    138*48,139*48,141*48,142*48,143*48,144*48,145*48,146*48
  350.     dc.w    147*48,148*48,149*48,150*48,151*48,152*48,154*48,155*48
  351.     dc.w    156*48,157*48,158*48,159*48,160*48,161*48,162*48,162*48
  352.     dc.w    163*48,164*48,165*48,166*48,167*48,168*48,169*48,170*48
  353.     dc.w    171*48,172*48,172*48,173*48,174*48,175*48,176*48,177*48
  354.     dc.w    177*48,178*48,179*48,180*48,180*48,181*48,182*48,182*48
  355.     dc.w    183*48,184*48,184*48,185*48,186*48,186*48,187*48,188*48
  356.     dc.w    188*48,189*48,189*48,190*48,190*48,191*48,191*48,192*48
  357.     dc.w    192*48,193*48,193*48,194*48,194*48,195*48,195*48,195*48
  358.     dc.w    196*48,196*48,196*48,197*48,197*48,197*48,198*48,198*48
  359.     dc.w    198*48,198*48,199*48,199*48,199*48,199*48,199*48,199*48
  360.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  361.     endr
  362.  
  363.  
  364. *****************************************************************************
  365. *           COLOURS FOR BAR (NOTE BAR IS 34 LINES, HENCE 34 COLOURS!)        *
  366. *****************************************************************************
  367.  
  368. coltab:
  369.     dc.w    $000,$000,$100,$200,$300,$400,$500,$600,$700
  370.     dc.w    $800,$900,$a00,$b00,$c00,$d00,$e00,$f00
  371.     dc.w    $e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600
  372.     dc.w    $500,$400,$300,$200,$100,$000
  373.  
  374.     
  375. *****************************************************************************
  376. *                             BAR FORMATIONS!                                *
  377. *****************************************************************************
  378.  
  379. tabptr:
  380.     dc.l    tab
  381. tab:
  382.     dc.w    10-1                ; no of bars to blit
  383.     dc.w    10,1                ; offset to sine tab and speed
  384.     dc.w    20,1                ; offset to sine tab and speed
  385.     dc.w    30,1
  386.     dc.w    40,1
  387.     dc.w    50,1
  388.     dc.w    60,1
  389.     dc.w    70,1
  390.     dc.w    80,1
  391.     dc.w    90,1
  392.     dc.w    100,1
  393.  
  394.  
  395. *****************************************************************************
  396. *                       THE MEGA SINE TABLE FOR THE BARS                        *
  397. *****************************************************************************
  398.  
  399. bsinptr:    
  400.         dc.l    bsintab
  401. bsintab:
  402.     dc.w    120,120,120,119,119,118,117,116
  403.     dc.w    115,114,113,111,110,108,106,104
  404.     dc.w    102,100,98,96,93,91,88,86
  405.     dc.w    83,80,77,75,72,69,66,63
  406.     dc.w    60,57,54,51,48,45,43,40
  407.     dc.w    37,34,32,29,27,24,22,20
  408.     dc.w    18,16,14,12,10,9,7,6
  409.     dc.w    5,4,3,2,1,1,0,0
  410.     dc.w    0,0,0,1,1,2,3,4
  411.     dc.w    5,6,7,9,10,12,14,16
  412.     dc.w    18,20,22,24,27,29,32,34
  413.     dc.w    37,40,43,45,48,51,54,57
  414.     dc.w    60,63,66,69,72,75,77,80
  415.     dc.w    83,86,88,91,93,96,98,100
  416.     dc.w    102,104,106,108,110,111,113,114
  417.     dc.w    115,116,117,118,119,119,120,120
  418.     even
  419.     
  420.  
  421. *****************************************************************************
  422. *                                    BINARIES                                *
  423. *****************************************************************************
  424.  
  425. font:
  426.     incbin    gfx/font.bin
  427.     even
  428. cyb_data:
  429.     incbin    "sfx/mod.task iii"
  430.     even
  431.  
  432.